home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 52 / Amiga Format AFCD52 (Issue 136, May 2000).iso / -screenplay- / shareware / solitarexx / scripts / golf.srx < prev    next >
Text File  |  2000-02-29  |  2KB  |  89 lines

  1. /****************************\
  2. ** Golf v1.0 for Solitarexx **
  3. **   by Michal Szafranski   **
  4. \****************************/
  5. OPTIONS RESULTS
  6.  
  7. tex = '"Golf for Solitarexx"'
  8. wintex = '"We Have a Winner"'
  9. ADDBUTTON 0 10 "Start"
  10. ADDTEXT 4 42 tex 6
  11. ADDSPACE 7 7
  12. ADDCYCLE 9 18 '"Queen|Queen or Ace|Nothing"' 0 '"Put on king"' 16
  13. ADDCYCLE 11 12 '"No|Yes"' 1 '"First foundation"' 19
  14. ADDBUTTON 12 10 "Abort"
  15. ADDTEXT 14 42 tex 6
  16. SELECTGUI 3
  17.  
  18. SCREENSIZE 2 4 7 0
  19. DO i = 0 TO 6
  20.     NEWSTACK 3 8 0 i 0 0 0 4
  21.     stack.i = RESULT
  22. END
  23. NEWSTACK 1 0 1 0 1 0 4
  24. deck = RESULT
  25. NEWSTACK 2 0 1 1 1 0 4
  26. waste = RESULT
  27. ADDCARDS deck SHUFFLED
  28.  
  29. DO FOREVER
  30.     ACTION
  31.     PARSE VAR RESULT act rest
  32.     IF act = 1 THEN EXIT
  33.     IF act = 3 THEN CALL GAME
  34. END
  35.  
  36. GAME:
  37.     CLEANUP deck
  38.     SETGADGET 14 STR tex
  39.     SELECTGUI 4
  40.     fin = 35
  41.     GETGADGET 9
  42.     kingmode = RESULT
  43.     GETGADGET 11
  44.     CARDSELECT deck RESULT
  45.     MOVECARDS deck waste REVERSE
  46.     DO i=0 TO 6
  47.         CARDSELECT deck 5
  48.         MOVECARDS deck stack.i REVERSE
  49.     END
  50.     DO FOREVER
  51.         ACTION
  52.         PARSE VAR RESULT act stack sid card
  53.         IF act = 1 THEN EXIT
  54.         IF act = 2 THEN SELECT
  55.             WHEN sid = 1 THEN CALL DODECK
  56.             WHEN sid = 3 & card>0 THEN CALL DOSTACKS
  57.             OTHERWISE ERRBEEP
  58.         END
  59.         IF act = 3 THEN DO
  60.             SELECTGUI 3
  61.             RETURN
  62.         END
  63.     END
  64. RETURN
  65. DODECK:
  66.     CARDSELECT deck 1
  67.     IF RESULT = '' THEN SETGADGET 14 STR '"'||fin 'cards left"'
  68.     ELSE MOVECARDS deck waste REVERSE
  69. RETURN
  70. DOSTACKS:
  71.     CARDSELECT waste 1
  72.     PARSE VAR RESULT xx warb xx
  73.     CARDSELECT stack 1
  74.     PARSE VAR RESULT xx wara xx
  75.     SELECT
  76.         WHEN warb = '' THEN warb = wara +1
  77.         WHEN kingmode = 1 & warb = 12 & wara = 0 THEN warb = -1
  78.         WHEN kingmode = 1 & wara = 12 & warb = 0 THEN wara = -1
  79.         WHEN kingmode = 2 & warb = 12 THEN warb = -2
  80.         OTHERWISE NOP
  81.     END
  82.     IF ABS(warb-wara)=1 THEN DO
  83.         MOVECARDS stack waste
  84.         fin = fin - 1
  85.         IF fin = 0 THEN SETGADGET 14 STR wintex
  86.     END
  87.     ELSE ERRBEEP
  88. RETURN
  89.